package com.yidu.best.basicSetup.fundset.domain;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

public class Fund implements Serializable {
	
	
	/**
	 * 序列号
	 */
	private static final long serialVersionUID = -3573607994188557707L;
	
	
	//基金Id
	private String fundId; 
	//基金代码
	private String fundNo;
	//基金名
	private String fundName;
	//修改(添加)时间
	private Date createTime;
	//管理人Id
	private String custodianId;
	//基金管理人名
	private String custodianName;
	//托管人Id
	private String trusteeId;
	//基金托管人名
	private String trusteeName;
	//管理费率
	private BigDecimal managementFee;
	//托管费率
	private BigDecimal hostingFees;
	//基金类型
	private String fundType;
	//基金规模
	private Integer fundScale;
	//基金成立的单位净值
	private BigDecimal IOPV;
	//计费有效天数
	private Integer billingDays;
	//成立日期
	private Date registerDate;
	//注册时的账号
	private String accountId;
	
	public Fund() {
		
	}

	public String getFundId() {
		return fundId;
	}

	public void setFundId(String fundId) {
		this.fundId = fundId;
	}

	public String getFundNo() {
		return fundNo;
	}

	public void setFundNo(String fundNo) {
		this.fundNo = fundNo;
	}

	public String getFundName() {
		return fundName;
	}

	public void setFundName(String fundName) {
		this.fundName = fundName;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public String getCustodianId() {
		return custodianId;
	}

	public void setCustodianId(String custodianId) {
		this.custodianId = custodianId;
	}

	public String getCustodianName() {
		return custodianName;
	}

	public void setCustodianName(String custodianName) {
		this.custodianName = custodianName;
	}

	public String getTrusteeId() {
		return trusteeId;
	}

	public void setTrusteeId(String trusteeId) {
		this.trusteeId = trusteeId;
	}

	public String getTrusteeName() {
		return trusteeName;
	}

	public void setTrusteeName(String trusteeName) {
		this.trusteeName = trusteeName;
	}

	public BigDecimal getManagementFee() {
		return managementFee;
	}

	public void setManagementFee(BigDecimal managementFee) {
		this.managementFee = managementFee;
	}

	public BigDecimal getHostingFees() {
		return hostingFees;
	}

	public void setHostingFees(BigDecimal hostingFees) {
		this.hostingFees = hostingFees;
	}

	public String getFundType() {
		return fundType;
	}

	public void setFundType(String fundType) {
		this.fundType = fundType;
	}

	public Integer getFundScale() {
		return fundScale;
	}

	public void setFundScale(Integer fundScale) {
		this.fundScale = fundScale;
	}

	public BigDecimal getIOPV() {
		return IOPV;
	}

	public void setIOPV(BigDecimal iOPV) {
		IOPV = iOPV;
	}

	public Integer getBillingDays() {
		return billingDays;
	}

	public void setBillingDays(Integer billingDays) {
		this.billingDays = billingDays;
	}

	public Date getRegisterDate() {
		return registerDate;
	}

	public void setRegisterDate(Date registerDate) {
		this.registerDate = registerDate;
	}

	public String getAccountId() {
		return accountId;
	}

	public void setAccountId(String accountId) {
		this.accountId = accountId;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((IOPV == null) ? 0 : IOPV.hashCode());
		result = prime * result + ((accountId == null) ? 0 : accountId.hashCode());
		result = prime * result + ((billingDays == null) ? 0 : billingDays.hashCode());
		result = prime * result + ((createTime == null) ? 0 : createTime.hashCode());
		result = prime * result + ((custodianId == null) ? 0 : custodianId.hashCode());
		result = prime * result + ((custodianName == null) ? 0 : custodianName.hashCode());
		result = prime * result + ((fundId == null) ? 0 : fundId.hashCode());
		result = prime * result + ((fundName == null) ? 0 : fundName.hashCode());
		result = prime * result + ((fundNo == null) ? 0 : fundNo.hashCode());
		result = prime * result + ((fundScale == null) ? 0 : fundScale.hashCode());
		result = prime * result + ((fundType == null) ? 0 : fundType.hashCode());
		result = prime * result + ((hostingFees == null) ? 0 : hostingFees.hashCode());
		result = prime * result + ((managementFee == null) ? 0 : managementFee.hashCode());
		result = prime * result + ((registerDate == null) ? 0 : registerDate.hashCode());
		result = prime * result + ((trusteeId == null) ? 0 : trusteeId.hashCode());
		result = prime * result + ((trusteeName == null) ? 0 : trusteeName.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Fund other = (Fund) obj;
		if (IOPV == null) {
			if (other.IOPV != null)
				return false;
		} else if (!IOPV.equals(other.IOPV))
			return false;
		if (accountId == null) {
			if (other.accountId != null)
				return false;
		} else if (!accountId.equals(other.accountId))
			return false;
		if (billingDays == null) {
			if (other.billingDays != null)
				return false;
		} else if (!billingDays.equals(other.billingDays))
			return false;
		if (createTime == null) {
			if (other.createTime != null)
				return false;
		} else if (!createTime.equals(other.createTime))
			return false;
		if (custodianId == null) {
			if (other.custodianId != null)
				return false;
		} else if (!custodianId.equals(other.custodianId))
			return false;
		if (custodianName == null) {
			if (other.custodianName != null)
				return false;
		} else if (!custodianName.equals(other.custodianName))
			return false;
		if (fundId == null) {
			if (other.fundId != null)
				return false;
		} else if (!fundId.equals(other.fundId))
			return false;
		if (fundName == null) {
			if (other.fundName != null)
				return false;
		} else if (!fundName.equals(other.fundName))
			return false;
		if (fundNo == null) {
			if (other.fundNo != null)
				return false;
		} else if (!fundNo.equals(other.fundNo))
			return false;
		if (fundScale == null) {
			if (other.fundScale != null)
				return false;
		} else if (!fundScale.equals(other.fundScale))
			return false;
		if (fundType == null) {
			if (other.fundType != null)
				return false;
		} else if (!fundType.equals(other.fundType))
			return false;
		if (hostingFees == null) {
			if (other.hostingFees != null)
				return false;
		} else if (!hostingFees.equals(other.hostingFees))
			return false;
		if (managementFee == null) {
			if (other.managementFee != null)
				return false;
		} else if (!managementFee.equals(other.managementFee))
			return false;
		if (registerDate == null) {
			if (other.registerDate != null)
				return false;
		} else if (!registerDate.equals(other.registerDate))
			return false;
		if (trusteeId == null) {
			if (other.trusteeId != null)
				return false;
		} else if (!trusteeId.equals(other.trusteeId))
			return false;
		if (trusteeName == null) {
			if (other.trusteeName != null)
				return false;
		} else if (!trusteeName.equals(other.trusteeName))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return "Fund [fundId=" + fundId + ", fundNo=" + fundNo + ", fundName=" + fundName + ", createTime=" + createTime
				+ ", custodianId=" + custodianId + ", custodianName=" + custodianName + ", trusteeId=" + trusteeId
				+ ", trusteeName=" + trusteeName + ", managementFee=" + managementFee + ", hostingFees=" + hostingFees
				+ ", fundType=" + fundType + ", fundScale=" + fundScale + ", IOPV=" + IOPV + ", billingDays="
				+ billingDays + ", registerDate=" + registerDate + ", accountId=" + accountId + "]";
	}

	public Fund(String fundId, String fundNo, String fundName, Date createTime, String custodianId,
			String custodianName, String trusteeId, String trusteeName, BigDecimal managementFee, BigDecimal hostingFees,
			String fundType, Integer fundScale, BigDecimal iOPV, Integer billingDays, Date registerDate, String accountId) {
		super();
		this.fundId = fundId;
		this.fundNo = fundNo;
		this.fundName = fundName;
		this.createTime = createTime;
		this.custodianId = custodianId;
		this.custodianName = custodianName;
		this.trusteeId = trusteeId;
		this.trusteeName = trusteeName;
		this.managementFee = managementFee;
		this.hostingFees = hostingFees;
		this.fundType = fundType;
		this.fundScale = fundScale;
		IOPV = iOPV;
		this.billingDays = billingDays;
		this.registerDate = registerDate;
		this.accountId = accountId;
	}

	
	
}






